home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 41.zip
/
BS1 part 41
/
Crunchers pack v1.5.adf
/
DOCS
/
Packer.doc.pp21
/
Packer.doc.pp21
Wrap
Text File
|
1987-03-07
|
19KB
|
438 lines
Power Packer V2.1a User Manual
March 14, 1989
Preface
=======
Congratulations, you have just obtained a copy of Power Peak's new and
improved PowerPacker 2.1a. If you have suggestions or remarks about this
program, or if you find any bugs, please let me know.
This version of the PowerPacker is shareware, this means that if you use
it a lot I would appreciate it if you'd send me a contribution of $10 or the
same amount in any other currency. This money will enable me to produce more
programs on the Amiga. If you send $15 I will send you the latest version of
the PowerPacker.
Write to the following address:
François Nico
Corbielaan 13
3060 Bertem BELGIUM
Contents
========
1. The Packer
1.1 An introduction
1.2 The file requester
1.3 The basic menus
1.3.1 Project
1.3.2 Prefs
2. Recrunch
2.1 How ?
2.2 Why ?
3. The HunkLab
3.1 Preferences
3.2 Process file
4. The Script Menu
5. The Supervisor Window
6. A Sample Session
7. PowerPacker 2.1a & the CLI
1. The Packer
-------------
1.1 An introduction
The PowerPacker is a userfriendly command and data cruncher, this means
a menu driven utility that can crunch almost any file on your disks. When
you use it for the first time it's best to maintain a certain order in your
actions (as we will see in chapter 6 of this document):
(a) set the packer options at the beginning of a session (Prefs menu)
(b) load the file from disk (Project menu)
(c) save the file back to disk (Project menu)
Apart from the crunching, you can also recrunch files that were crunched
by some other crunchers.
The HunkLab enables you to e.g. force code or data in chip ram.
The script, a new feature in 2.1a, allows you to e.g. crunch a dozen of
files overnight.
Before I demonstrate how to use the PowerPacker, let's look at the file
requester and a brief overview of the menus and capabilities.
1.2 The file requester
Whenever you are required to enter a filename, the packer sets up a file
requester. This requester automatically contains all devices connected to
your Amiga and lists all the files (and their length) of a selected
directory. You don't have to wait for the directory read to end. You can
select a file or directory the moment you see it, or you can enter it in the
appropriate string gadget.
However, if you wait for the directory read to end and quit the file
requester, the next time you use it all the files will still be there, so you
don't have to wait for the directory to be read again (This is very useful
when you are recording a script, as you'll see later). This feature has one
disadvantage : if files are changed or added to the selected directory they
won't be shown in the list, or they will be shown with the wrong filelength,
the next time the requester appears. Therefore, if you think anything has
been changed to the selected directory, use the 'GET DIR' gadget to re-read
the directory. (E.g. when you save a crunched file on top of the old one,
the old file length will be shown in the requester.)
1.3 The basic menus
1.3.1 Project
The project menu contains the file manipulation options. Most of them
speak for themselves:
Load -> Load a file from disk and start the (de)crunching.
Save -> Save the (de)crunched or processed file in memory to disk.
Delete -> Delete a file from disk.
WorkBench -> Open or close WorkBench if possible. (Adds 42K !)
About... -> Show general information and my address.
Quit -> Quit the program.
1.3.2 Prefs
The prefs menu contains all (de)cruncher settings. You can select
(de)crunch command files or data files. If you want the crunched
version of your file to be executable, select 'Command file'. Now the
PowerPacker knows it has to add a decrunch header (572 bytes). If the file
you want to crunch only contains data (e.g. Source codes of your own
programs), select the 'Data file' option. This can be handy if you're going
to use the PowerPacker CLI commands. I'll discuss these commands in chapter
5 of this document. Finally you have to choose whether you want to crunch or
decrunch the load file.
Note: - The PowerPacker will automatically decrunch a previously crunched
file. You don't have to select crunch or decrunch mode anymore as
in PowerPacker 2.0a.
The 'Decrunch Color' submenu contains the following options :
Color 0 -> The background color will change while decrunching
Color 1 -> The text color changes
Pointer -> Only the mousepointer's color changes
Scroll -> Handy for decrunching a demo (just try it out !)
None -> If you're eyes are wearing out.
These options indicate what color will flash when a file is decrunching.
You can change this option before saving a crunched file, so you can save a
version of your crunched program that flashes in color 1, and one that
flashes in the mouse pointer.
If the 'Color Crunch' option is selected, the PowerPacker will use the
same color while crunching the file, giving you an idea what the decrunching
will look like (provided that you don't change any options just before saving
to disk). The default value is color 1.
In the efficiency submenu you will find the following possibilities :
Fast -> Use for small files, or for quick crunch.
Mediocre -> Better but slower.
Good -> Default, gains 40-50% in most cases.
Very Good -> Also very slow !
Best -> Advised for script use only, ultra slow !!!
Note: - 'Fast' is approx. 4 times faster than 'Good', 'Very Good' is
2 times slower and 'Best' 4 times.
You can set Amiga's multitasking off to increase the crunching speed
(slightly). The default setting is on. When you want to use the PowerPacker
in a multitasking environment, you'll probably start a crunching job and at
the same time continue your work. In that case, it might be interesting to
set the 'LED Crunch' option on. Now your power-LED flashes while crunching,
just like the screencolors. (but I presume they're already turned off
because editing a file with flashing text really gets on your nerves)
You can even turn off your monitor and still see when the cruncher has
finished.
Finally, you can set the paging in the supervisor window on so you can
read the crunch and hunk information, without everything racing off the
screen before you've had a chance to see it.
Note: - While crunching, you can press both mousebuttons at the same
time to abort.
- Do *NOT* change disks when you are crunching with the multitasking
switched off !!! The Amiga will crash !!!
2. Recrunch
-----------
2.1 How ?
This menu is provided for people who were using another cruncher or
an older version of the PowerPacker. Just select 'Recrunch File' or
'Decrunch Only' and load the file. The PowerPacker will start the correct
decrunch algorithm. If you selected 'Recrunch' the PowerPacker will start
crunching the decrunched file. If the PowerPacker doesn't recognize the
cruncher it will say so, no harm is done.
Crunchers currently supported are: 'ANC Cruncher', 'TNM Cruncher 1.1',
'Relokit 1.0' and older PowerPacker files. If you'd like to see other
crunchers supported, send me the cruncher and some programs crunched with it.
(With a contribution I hope). If it is possible to develop a decrunch
algorithm I will include it in the next version of the PowerPacker.
2.2 Why ?
The PowerPacker always crunches better than the 'ANC Cruncher' and the
'TNM Cruncher'. It crunches better than 'Relokit' most of the time, but even
if it doesn't, I advise you to recrunch because 'Relokit' has some serious
disadvantages (e.g. while the decrunched file is running, the crunched
version still eats memory). In contrast the PowerPacker only eats about 580
bytes while your file is running, and (of course) frees it afterwards.
Note: - If you want to recrunch a PowerPacker 1.1 or 2.0 crunched file, the
PowerPacker just replaces the file header with the improved and
debugged 2.1 header.
- The recrunch menu only supports command files ! You can't recrunch
data files from e.g. PowerPacker 1.0, sorry.
2. The Hunklab
--------------
2.1 Preferences
This menu is not really part of the PowerPacker crunch/decrunch routines
but it wasn't worth writing a separate program for and a HunkLab is after all
a very interesting utility. You can e.g. use it to remove symbol and debug
hunks from files that wouldn't crunch otherwise.
You can force a program's code, data or BSS (uninitialised data) into
chip ram or you can remove symbol tables and debug information just by
toggling the marker on/off. So in future, when you want your programs to be
able to run on a one megabyte system, a simple click on the mousebutton will
do.
2.2 Process file
'Process file' reads the file from disk and changes it according to your
preferences. To save the processed file, use 'Save' from the Project menu.
'Process & Crunch' will process the file and crunch the file afterwards
(if possible). To save use 'Save' in the Project menu.
3. The Script Menu
------------------
This menu contains a new feature in version 2.1a. It allows you to
record and execute 80 different commands. It is ideal when crunching a lot
of files overnight. Menu options are:
'Clear Script' and 'List Script' will do just that.
'Source Dir' and 'Destination Dir' are used to specify the directory to
load from and the directory to save to. They are ghosted during
normal use.
'Start Recording' is used to start the recording of the script. If the
script was empty you will be asked for the destination directory.
You will also be asked whether to append '.pp21' to the destination
file. You're advised to do this for data files.
After selecting the destination you can start entering the
script commands. Everything that is ghosted is not available as a
command. Just enter everything as if you were actually using the
PowerPacker. When you e.g. choose 'Load' the PowerPacker will
ask a list of files to be (de)crunched. Press 'CANCEL' to exit the
entry.
Note: - You can still change the source and destination dir while
recording.
Every command you enter will be displayed in the supervisor window.
'Stop Recording' is used to exit the recording mode.
'Delete Last' will delete the last command after a confirmation.
'Execute Script' finally, is used to start the playback of the script
commands. If you press the menu button a requester will appear to
ask you if you want to abort the script execution.
After executing the script, a request to clear the script will
appear.
Note: - It is advisable to let the filerequester buffer fill before you
start selecting files. It is also better not to change the source
directory too often.
- The screen turns grey to indicate a script is executing.
- While executing a script, the PowerPacker will always act
destructive ! Files will always be overwritten and deleted !!!
4. The Supervisor Window
------------------------
This window displays all kind of useful information like the file
status, crunch messages, and error messages. You can follow all steps, from
the original file that is loaded into memory, to the final crunched version
on disk. When an executable file is loaded, its hunk information is
displayed. This information is rather technical, but it can be useful for
programmers. If you're not interested, just ignore it.
I think it might be useful to give a list of possible error messages:
(De)crunch : Buffer overflow !
(Crunched file is getting longer than original file)
Crunch aborted !
(Crunching stopped by user or by buffer overflow)
No memory for decrunch buffer !
Out of memory !
(Buy some more, or try closing the WorkBench)
Sorry, can't crunch !
(This is a polite program)
Can't find hunk_header.
Hunk not allowed in load file!
Unknown Hunk !
(Not a command file)
Hunk not supported (yet ?) !
(If it's a symbol or debug hunk, try removing it in HunkLab)
Nothing to save !
(Buffer is empty)
Save Aborted !
Error reading file !
Can't open file !
Error writing data header !
Error writing buffer !
File not found !
Couldn't delete file !
Can't open file !
(Disk errors)
Recrunch : No need to recrunch 'PowerPacker 1.1' command file,
Replacing 1.1 decrunch header with 2.1 header...
(2.1 header is shorter and bugfree, 1.1 isn't !!)
No need to recrunch 'PowerPacker 2.0' command file,
Replacing 2.0 decrunch header with 2.1 header...
(There was still a small bug in 2.0 header giving problems
when low on memory, so replace it.)
Not crunched with one of the supported crunchers !!
(Or file is not crunched at all !)
Sorry, can't recrunch !
(We're always polite)
Process : Sorry, can't process file !
(File is probably not a command file)
Can't crunch file !
(File still contains unsupported hunks)
Script : Script buffer full !! Please stop recording.
(Script is limited to 80 commands, choose 'Stop Recording')
5. A Sample Session
-------------------
Now that I have explained the PowerPacker's capabilities, it's time for
a little demonstation. Let's say we want to crunch the 'CLI' command in the
System directory on your Workbench 1.2 disk.
Select 'Pointer' in the Prefs/Decrunch Color menu (When I wrote this
text, it was very late and I couldn't stand the other decrunch colors
anymore !)
Set 'Prefs' to 'Command file'. Now select 'Load' in the Project menu
(a file requester will appear), insert your WorkBench 1.2 disk and choose the
'CLI' command in the system directory. Now you'll see a lot of hunk
information about the CLI command:
Loading command file 'df0:System/CLI'...
Hunk_header (0x03F3)
9 hunks (0 to 8).
Hunk 0 :
Hunk_code (0x03E9)
(524 bytes)
Hunk_reloc32 (0x03EC)
Hunk 1 :
Hunk_data (0x03EA)
(428 bytes, 0 BSS)
Hunk 2 :
Hunk_code (0x03E9)
(472 bytes)
Hunk_reloc32 (0x03EC)
Hunk 3 :
Hunk_data (0x03EA)
(52 bytes, 0 BSS)
Hunk 4 :
Hunk_code (0x03E9)
(16 bytes)
Hunk 5 :
Hunk_code (0x03E9)
(0 bytes)
Hunk 6 :
Hunk_code (0x03E9)
(196 bytes)
Hunk_reloc32 (0x03EC)
Hunk 7 :
Hunk_code (0x03E9)
(68 bytes)
Hunk_reloc32 (0x03EC)
Hunk 8 :
Hunk_data (0x03EA)
(0 bytes, 0 BSS)
Crunching command file...
Press left and right button to abort.
Crunching, please wait.
The cruncher displays the percentage of the file already crunched and
after some time your screen will look like this:
100% crunched.
Done.
Original length : 2356 bytes.
Crunched length : 1204 (1776) bytes.
Gained 49% (1152 bytes) !
The only thing you have to do now is save this back to disk as a
command file. Now enjoy the crunched CLI command.
6. PowerPacker 2.1a & the CLI
-----------------------------
For your convenience, I have also written two CLI commands, one to
crunch and one to decrunch.
Attention: These commands only (de)crunch DATA files !!!! (So to
crunch executable files, you'll still have to use the PowerPacker 2.1a).
A usage line is given by typing 'Crunch' or 'Decrunch' without
arguments. You'll get something like this:
1>
1> crunch
POWER-PACKER 2.1a
Data Cruncher.
Written by Lone Wolf from POWERPEAK.
USAGE : Crunch <source> <destination> [efficiency (1-5) default 3] [P] [F]
Where P stands for no percentage, F for Forbid() crunching.
1>
1> decrunch
POWER-PACKER 2.1a
Data Decruncher.
Written by Lone Wolf from POWERPEAK.
USAGE : Decrunch <source> <destination> [decrunch color (0-4)]
With decrunch color 0/1 -> Color 0/1, 2 -> Pointer, 3 -> Scroll, 4 -> None
If <destination> is a * the file will be typed to Output().
1>
These commands are useful to be included in your startup-sequence or to
read crunched text files quickly.
I don't think these commands need any further explanation. Just try
them out and you'll see what happens. E.g. when you have a crunched source
file of a program on your disk, typing
Decrunch filename.c *
will display the file as if you were using the 'Type' command for textfiles.
Enjoy !!!
P.S. This text file crunched to 43% of it's original length. (Gained 57% !)
The PowerPacker 2.1a written by François Nico (Lone Wolf).
Special thanks to Pauwels Luc (Red Eagle) for writing the 2.0a manual and
Tyberghein Jorrit (Edain) for the extensive debugging.
(c) 1989 François Nico / Power Peak
//
Thanks to \X/ Amiga for being the best computer ever !